r88 - in trunk: vradi-services/src/main/java/org/chorem/vradi/services/managers vradi-web/src/main/java/org/chorem/vradi/actions vradi-web/src/main/resources vradi-web/src/main/webapp/WEB-INF/jsp vradi-web/src/main/webapp/css
Author: sletellier Date: 2011-06-21 17:07:33 +0200 (Tue, 21 Jun 2011) New Revision: 88 Url: http://chorem.org/repositories/revision/vradi/88 Log: Use Jquery for build fully dinamical search page Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp Removed: trunk/vradi-web/src/main/webapp/css/global.css Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java trunk/vradi-web/src/main/resources/struts.xml trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp trunk/vradi-web/src/main/webapp/css/search.css Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java =================================================================== --- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java 2011-06-21 15:07:33 UTC (rev 88) @@ -530,7 +530,7 @@ if (queriesIds != null) { Set<Query> queries = wikittyProxy.restore(Query.class, queriesIds); for (Query query : queries) { - if (query.getName().equalsIgnoreCase(queryName)) { + if (queryName.equalsIgnoreCase(query.getName())) { return query; } } Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java 2011-06-21 15:07:33 UTC (rev 88) @@ -143,7 +143,8 @@ public String execute() { // Build search - QueryParameters queryParameters = new QueryParameters(getQuery()); + String query = getQuery(); + QueryParameters queryParameters = new QueryParameters(query); // Do search FormPagedResult result = new FormPagedResult(); Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java (rev 0) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java 2011-06-21 15:07:33 UTC (rev 88) @@ -0,0 +1,61 @@ +package org.chorem.vradi.actions; + +import com.opensymphony.xwork2.ActionContext; +import org.apache.struts2.interceptor.ServletRequestAware; +import org.chorem.vradi.entities.Query; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +/** + * Action to display struts2-jquery grid + * + * @author sletellier + */ +public class SavedQueriesAction extends VradiBaseAction implements ServletRequestAware { + + static public SavedQueriesAction getAction() { + return (SavedQueriesAction) ActionContext.getContext().get(CONTEXT_ACTION_KEY); + } + + protected HttpServletRequest request; + + protected List<Query> lastQueries; + + @Override + public void setServletRequest(HttpServletRequest request) { + this.request = request; + } + + public List<Query> getLastQueries() { + if (lastQueries == null || lastQueries.isEmpty()) { + lastQueries = Collections.EMPTY_LIST; + } + return lastQueries; + } + + public void setLastQueries(List<Query> lastQueries) { + this.lastQueries = lastQueries; + } + + public String getJSON() { + return execute(); + } + + /** + * Initializes everything before displaying the home page + */ + public String execute() { + + // Retrieve last requests + Set<String> queriesId = getUser().getQueries(); + if (queriesId != null) { + this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId)); + } + + return SUCCESS; + } +} Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-21 15:07:33 UTC (rev 88) @@ -1,15 +1,12 @@ package org.chorem.vradi.actions; import com.opensymphony.xwork2.ActionContext; +import org.apache.commons.lang.StringUtils; import org.apache.struts2.interceptor.ServletRequestAware; import org.chorem.vradi.entities.Query; import org.chorem.vradi.entities.VradiUser; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; /** * Search action @@ -30,9 +27,26 @@ protected String query; protected String queryName; protected HttpServletRequest request; - protected List<Query> lastQueries; + protected String selectedQuery; protected boolean queryActive; + protected boolean saveQuery; + public boolean isSaveQuery() { + return saveQuery; + } + + public void setSaveQuery(boolean saveQuery) { + this.saveQuery = saveQuery; + } + + public String getSelectedQuery() { + return selectedQuery; + } + + public void setSelectedQuery(String selectedQuery) { + this.selectedQuery = selectedQuery; + } + public int getNbForms() { return nbForms; } @@ -61,13 +75,6 @@ return queryActive; } - public List<Query> getLastQueries() { - if (lastQueries == null || lastQueries.isEmpty()) { - lastQueries = Collections.EMPTY_LIST; - } - return lastQueries; - } - @Override public void setServletRequest(HttpServletRequest request) { this.request = request; @@ -77,29 +84,37 @@ * Initializes everything before displaying the home page */ public String execute() { + return SUCCESS; + } - VradiUser user = getUser(); + public String refreshForm() { + if (!StringUtils.isEmpty(selectedQuery)) { - // Check if request is active / inactive - this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName); + Query query = getProxy().restore(Query.class, selectedQuery); + setQueryName(query.getName()); + setQuery(query.getContent()); - // Retrieve last requests - Set<String> queriesId = user.getQueries(); - if (queriesId != null) { - this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId)); + VradiUser user = getUser(); + + // Check if request is active / inactive + this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName); + } else { + setQuery(StringUtils.EMPTY); + setQueryName(StringUtils.EMPTY); + this.queryActive = false; } - return SUCCESS; } public String saveQuery() { - VradiUser user = getUser(); + if (!StringUtils.isEmpty(queryName) && !StringUtils.isEmpty(query)) { + VradiUser user = getUser(); - user = getVradiSession().getDataService().saveQuery(user, queryName, query); + user = getVradiSession().getDataService().saveQuery(user, queryName, query); - setUser(user); - + setUser(user); + } return SUCCESS; } Modified: trunk/vradi-web/src/main/resources/struts.xml =================================================================== --- trunk/vradi-web/src/main/resources/struts.xml 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-21 15:07:33 UTC (rev 88) @@ -108,15 +108,6 @@ </action> <!-- - | Search - +--> - <action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction"> - <param name="query"/> - <param name="queryName"/> - <result type="redirect">/fragment/savedQuery.action</result> - </action> - - <!-- | Thesaurus +--> <action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction"> @@ -135,6 +126,13 @@ </action> <!-- + | Form grid + +--> + <action name="savedQueries" class="org.chorem.vradi.actions.SavedQueriesAction"> + <result name="success" type="json"/> + </action> + + <!-- | Affiche le détail du formulaire +--> <action name="formView/*" class="org.chorem.vradi.actions.FormViewAction"> @@ -197,10 +195,33 @@ <result>/WEB-INF/jsp/thesaurusFilter.jsp</result> </action> <!-- + | genere le formulaire de recherche + +--> + <action name="refreshForm" method="refreshForm" class="org.chorem.vradi.actions.SearchAction"> + <result>/WEB-INF/jsp/empty.jsp</result> + </action> + <!-- + | genere le formulaire de recherche + +--> + <action name="searchPanel" method="refreshForm" class="org.chorem.vradi.actions.SearchAction"> + <result>/WEB-INF/jsp/searchPanel.jsp</result> + </action> + <!-- + | Search + +--> + <action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction"> + <!--<param name="query"/>--> + <!--<param name="queryName"/>--> + <result>/WEB-INF/jsp/empty.jsp</result> + </action> + <!-- | genere la grille des resultats +--> + <!-- + | genere la grille des resultats + +--> <action name="search" class="org.chorem.vradi.actions.SearchAction"> - <result>/WEB-INF/jsp/resultGrid.jsp</result> + <result>/WEB-INF/jsp/resultGrid.jsp</result> </action> <!-- | genere le bouton d'activation des queries @@ -221,7 +242,7 @@ <!-- | Save query +--> - <action name="savedQuery" class="org.chorem.vradi.actions.SearchAction"> + <action name="savedQuery" class="org.chorem.vradi.actions.SavedQueriesAction"> <result>/WEB-INF/jsp/savedQueries.jsp</result> </action> Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-21 15:07:33 UTC (rev 88) @@ -5,7 +5,6 @@ --%> <%@page import="com.opensymphony.xwork2.ActionContext"%> -<%@page import="org.chorem.vradi.entities.Attachment"%> <%@page import="org.chorem.vradi.entities.FormNote"%> <%@page import="org.chorem.vradi.actions.FormNoteAction"%> @@ -80,10 +79,12 @@ collapsible="true" useSelectedTabCookie="true"> <sj:tab id="tabHtmlSummary" target="htmlSummary" label="Summary"/> <sj:tab id="tabHtmlSummaryEdit" target="htmlSummaryEdit" label="Edit"/> - <div id="htmlSummary"> + <sj:div id="htmlSummary" + href="/ajax/rst.action?id=%{localNoteId}&field=%{localFieldSummary}" + listenTopics="topicHtmlSummary"> <img id="indicator-htmlSummary" src="/img/indicator.gif" alt="Loading..." style="display:none"/> <%=action.getSummary()%> - </div> + </sj:div> <div id="htmlSummaryEdit"> <form id="htmlSummaryEditForm" action="/ajax/rst.action"> <s:hidden name="id" value="%{localNoteId}"/> @@ -91,7 +92,8 @@ <s:textarea name="rst" value="%{localSummary}"/> <sj:submit id="htmlSummaryEditSubmit" value="Save" - targets="htmlSummary" indicator="indicator-htmlSummary" + targets="result" + onClickTopics="topicHtmlSummary" indicator="indicator-htmlSummary" button="true" buttonIcon="ui-icon-gear"/> </form> </div> Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-21 15:07:33 UTC (rev 88) @@ -1,20 +1,33 @@ -<%@ page import="org.chorem.vradi.actions.SearchAction" %> <%@ page import="com.opensymphony.xwork2.ActionContext" %> <%@ page import="org.chorem.vradi.entities.Query" %> <%@ page import="java.util.List" %> +<%@ page import="org.chorem.vradi.actions.SavedQueriesAction" %> <%@taglib prefix="s" uri="/struts-tags"%> <%@taglib prefix="sj" uri="/struts-jquery-tags" %> <% -SearchAction action = SearchAction.getAction(); +SavedQueriesAction action = SavedQueriesAction.getAction(); List<Query> lastQueries = action.getLastQueries(); ActionContext.getContext().put("lastQueries", lastQueries); %> -<s:select id="lastQueries" - name="lastQueries" - listKey="content" - listValue="name" - list="lastQueries" - emptyOption="true" - onchange="form.elements['query'].innerHTML = this.options[this.selectedIndex].value"/> \ No newline at end of file +<form id="queryForm" action="/fragment/searchPanel.action"> + + <s:url id="savedQueries" action="savedQueries"/> + + <sj:select id="lastQueriesSelect" + href="%{savedQueries}" + name="selectedQuery" + listKey="wikittyId" + listValue="name" + list="lastQueries" + emptyOption="true" + onChangeTopics="doUpdateForm"/> + + <%--onSuccessTopics="updateForm"--%> + <sj:submit id="doUpdateFormSubmit" + cssClass="hidden" + listenTopics="doUpdateForm" + targets="searchPanel" + button="true"/> +</form> \ No newline at end of file Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-21 15:07:33 UTC (rev 88) @@ -1,7 +1,3 @@ -<%@page import="org.chorem.vradi.entities.Infogene"%> -<%@page import="org.chorem.vradi.entities.Form" %> -<%@ page import="org.chorem.vradi.actions.SearchAction" %> -<%@ page import="com.opensymphony.xwork2.ActionContext" %> <%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <%@taglib prefix="sj" uri="/struts-jquery-tags" %> @@ -44,6 +40,7 @@ } $('#searchArea')[0].value += finalName.trim(); }); + </script> </head> <body> @@ -72,60 +69,22 @@ </sj:div> </div> - <div id="contentPanel"> - <div id="searchPanel"> - <form id="searchForm" action="/fragment/search.action"> - <div id="queriesPanel"> - <sj:div id="savedQueriesPanel" - cssClass="left" - href="/fragment/savedQuery.action" - indicator="indicator-savedQuery"> - <img id="indicator-savedQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/> - </sj:div> + <div id="contentPanel" + class="queriesPanel"> + <sj:div id="savedQueriesPanel" + href="/fragment/savedQuery.action" + listenTopics="updateQueries" + indicator="indicator-savedQuery"> + <img id="indicator-savedQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/> + </sj:div> - <s:text name="vradi.search.queryName"/> - <s:textfield id="queryName" - cssClass="right" - theme="simple" - name="queryName" - size="40"/> - </div> - <div id="queryPanel"> - <s:textarea id="searchArea" - name="query" - cols="160" - rows="6"/> - </div> - <div id="searchActionPanel"> - - <s:url id="saveQueryUrl" action="saveQuery"/> - - <s:set id="searchText"> - <s:text name="vradi.search.saveQuery"/> - </s:set> - <sj:submit id="saveQuery" - href="%{saveQueryUrl}" - value="%{#searchText}" - indicator="indicator-savedQuery" - targets="savedQueriesPanel" - button="true"/> - - <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery"> - <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/> - </sj:div> - <s:set id="searchText"> - <s:text name="vradi.search.submit"/> - </s:set> - - <sj:submit id="search" - value="%{#searchText}" - indicator="indicator-grid" - targets="resultPanel" - button="true"/> - </div> - </form> - </div> + <sj:div id="searchPanel" + href="/fragment/searchPanel.action" + listenTopics="updateForm" + indicator="indicator-searchPanel"> + <img id="indicator-searchPanel" src="/img/indicator.gif" alt="Loading..." style="display:none"/> + </sj:div> <sj:div id="resultPanel" href="/fragment/search.action" indicator="indicator-grid"> <img id="indicator-grid" src="/img/indicator.gif" alt="Loading..." style="display:none"/> </sj:div> Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp (rev 0) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp 2011-06-21 15:07:33 UTC (rev 88) @@ -0,0 +1,62 @@ +<%@ page import="org.chorem.vradi.actions.SearchAction" %> +<%@ page import="com.opensymphony.xwork2.ActionContext" %> +<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> +<%@taglib prefix="s" uri="/struts-tags"%> +<%@taglib prefix="sj" uri="/struts-jquery-tags" %> + +<% +SearchAction action = SearchAction.getAction(); +String query = action.getQuery(); +String queryName = action.getQueryName(); +ActionContext.getContext().put("query", query); +ActionContext.getContext().put("queryName", queryName); +%> + +<s:form id="searchForm" action="search"> + <div id="empty"> + </div> + + <div id="queryNamePanel" class="queryPanel"> + <s:text name="vradi.search.queryName"/> + <s:textfield id="queryName" + cssClass="right" + theme="simple" + name="queryName" + size="40"/> + </div> + <div id="queryPanel" class="queryPanel"> + <s:textarea id="searchArea" + name="query" + cols="160" + rows="6"/> + </div> + <div id="searchActionPanel"> + + <s:url id="saveQueryUrl" value="/fragment/saveQuery.action"/> + + <s:set id="saveQueryText"> + <s:text name="vradi.search.saveQuery"/> + </s:set> + <sj:submit id="saveQuery" + href="%{saveQueryUrl}" + value="%{saveQueryText}" + targets="empty" + onCompleteTopics="updateQueries" + button="true"/> + + <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery"> + <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/> + </sj:div> + + <s:set id="searchText"> + <s:text name="vradi.search.submit"/> + </s:set> + + <sj:submit id="search" + value="%{searchText}" + indicator="indicator-grid" + targets="resultPanel" + button="true"/> + + </div> +</s:form> \ No newline at end of file Modified: trunk/vradi-web/src/main/webapp/css/search.css =================================================================== --- trunk/vradi-web/src/main/webapp/css/search.css 2011-06-15 12:46:25 UTC (rev 87) +++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-21 15:07:33 UTC (rev 88) @@ -1,19 +1,26 @@ /* Layout */ div.left{ - /*width: 20%;*/ float:left; } +#doUpdateFormSubmit { + display: none; +} + +.ui-pg-table { + font-size: 11px; +} + .right{ float:right; } -.left{ +.left { float:left; } -.button{ +.button { margin-top:20px; height:31px; line-height:31px; @@ -23,10 +30,34 @@ padding:2px; } -#queriesPanel { - width: 70%; +#thesaurusPanel { + width: 20%; } +#wrap { + height: 100%; +} + +#savedQueriesPanel { + float:left; + height: 10px; +} + +.queriesPanel { + width: 80%; + float:right; +} + +#queryNamePanel { + text-align: right; + width: 62%; +} + +.queryPanel { + width: 77%; + float:left; +} + #thesaurusForm { height: 5%; } @@ -35,20 +66,10 @@ float:right; } -#searchPanel { +#searchForm { height: 150px; } -#contentPanel { - padding-right: 20%; - padding-left: 20%; -} - -#queryPanel { - float:left; - width: 70%; -} - textarea { width: 100%; }
participants (1)
-
sletellier@users.chorem.org