r158 - in trunk: . src/main/java/org/nuiton/scmwebeditor/actions src/main/resources src/main/webapp
Author: kcardineaud Date: 2011-07-05 16:26:01 +0200 (Tue, 05 Jul 2011) New Revision: 158 Url: http://nuiton.org/repositories/revision/scmwebeditor/158 Log: Use jquery tree to display files on the repository Modified: trunk/pom.xml trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java trunk/src/main/resources/struts.xml trunk/src/main/webapp/OutConnection.jsp trunk/src/main/webapp/Search.jsp Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-07-04 14:56:03 UTC (rev 157) +++ trunk/pom.xml 2011-07-05 14:26:01 UTC (rev 158) @@ -99,7 +99,13 @@ <artifactId>struts2-jquery-plugin</artifactId> <version>${struts2jqueryVersion}</version> <scope>runtime</scope> - </dependency> + </dependency> + + <dependency> + <groupId>com.jgeppert.struts2.jquery</groupId> + <artifactId>struts2-jquery-tree-plugin</artifactId> + <version>${struts2jqueryVersion}</version> + </dependency> <dependency> <groupId>org.apache.struts.xwork</groupId> @@ -107,6 +113,12 @@ <version>${strutsxworksVersion}</version> </dependency> + <dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts2-json-plugin</artifactId> + <version>${struts2Version}</version> + </dependency> + </dependencies> <!-- ************************************************************* --> Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java 2011-07-04 14:56:03 UTC (rev 157) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java 2011-07-05 14:26:01 UTC (rev 158) @@ -1,12 +1,17 @@ package org.nuiton.scmwebeditor.actions; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; import java.util.Map; +import java.util.Map.Entry; +import com.jgeppert.struts2.jquery.tree.result.TreeNode; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; @@ -53,6 +58,11 @@ String list; + protected List<TreeNode> nodes = new ArrayList<TreeNode>(); + protected String id = ""; + + + public String getError() { return error; } @@ -121,12 +131,26 @@ log.info("Enter in search action"); } + DAVRepositoryFactory.setup(); - String url = address; + String url = ""; + if(id.equals("")) { + return "root"; + } + else if(id.equals("0")) { + url=address; + } + else { + url=id; + address=id; + } + + + String name = "anonymous"; String password="anonymous"; @@ -135,14 +159,17 @@ password=pw; } + + files = new LinkedList<UrlSvnFile>(); directories = new HashMap<String,String>(); + + if(address.endsWith("/")) { address = address.substring(0, address.length()-1); } - SVNRepository repository = null; try { @@ -152,7 +179,7 @@ if(log.isInfoEnabled()) { log.info( "Repository Root: " + repository.getRepositoryRoot( true ) ); - log.info( "Repository UUID: " + repository.getRepositoryUUID( true ) ); + log.info( "Repository UUID: " + repository.getRepositoryUUID( true ) ); } SVNNodeKind nodeKind = repository.checkPath( "" , -1 ); @@ -177,6 +204,36 @@ Collections.sort(files); + + for (UrlSvnFile file : files ) { + TreeNode node = new TreeNode(); + node.setId(file.toString()); + node.setTitle(file.toString()); + node.setState(TreeNode.NODE_STATE_LEAF); + node.setIcon("ui-icon-document"); + nodes.add(node); + } + + + Iterator<Entry<String, String>> iter1 = directories.entrySet().iterator(); + while (iter1.hasNext()) { + Map.Entry<String,String> ent = (Map.Entry<String,String>) iter1.next(); + //La clé de la HashMap + + //La Valeur de la HashMap + String value = ent.getValue(); + + TreeNode node = new TreeNode(); + node.setId(value); + node.setTitle(value); + nodes.add(node); + + + //Traitement + } + + + } catch (SVNAuthenticationException authexep) { if(log.isErrorEnabled()) { log.error("Can't access to the repository : Auth Problem"); @@ -190,7 +247,7 @@ error="Can't access to the repository"; } - + log.info("Success"); return Action.SUCCESS; } @@ -228,13 +285,31 @@ } + + + public String getJSON() { + return search(); + } + + public List<TreeNode> getNodes() { + return nodes; + } + + public void setId(String id) { + this.id=id; + } + + + public String getAddressUnique(String leFichier) { String result = leFichier.replaceAll("/|:", ""); log.info("Result of getAddressUnique : "+result); return result; } + //public String getFileOrDirName(Strin) + public static String replaceLast(String string, String toReplace, String replacement) { int pos = string.lastIndexOf(toReplace); if (pos > -1) { Modified: trunk/src/main/resources/struts.xml =================================================================== --- trunk/src/main/resources/struts.xml 2011-07-04 14:56:03 UTC (rev 157) +++ trunk/src/main/resources/struts.xml 2011-07-05 14:26:01 UTC (rev 158) @@ -4,6 +4,9 @@ "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="action" extends="struts-default"> + <result-types> + <result-type name="json" class="org.apache.struts2.json.JSONResult"/> + </result-types> <action name="checkout" class="org.nuiton.scmwebeditor.actions.ScmWebEditorMainAction" method="execute"> <result name="noParameter" >/OutConnection.jsp</result> @@ -38,8 +41,15 @@ <result>/Preview.jsp</result> </action> + + + <action name="search" class="org.nuiton.scmwebeditor.actions.SearchAction" method="search"> - <result>/Search.jsp</result> + <param name="address"/> + <result name="root" >Search.jsp</result> + <result name="success" type="json"> + <param name="root">nodes</param> + </result> <result name="authError" >/LoginSearch.jsp</result> </action> Modified: trunk/src/main/webapp/OutConnection.jsp =================================================================== --- trunk/src/main/webapp/OutConnection.jsp 2011-07-04 14:56:03 UTC (rev 157) +++ trunk/src/main/webapp/OutConnection.jsp 2011-07-05 14:26:01 UTC (rev 158) @@ -2,6 +2,7 @@ <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> + <%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %> <sj:head jquerytheme="default"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" @@ -48,6 +49,18 @@ <div id="htmlcontentSearch" ></div> </form> +<!-- + <div id="searchTree"> + + <s:url id="searchTreeUrl" action="search?address=http://localhost/scmsvn"/> + + <sjt:tree id="svnTree" + jstreetheme="classic" + href="%{searchTreeUrl}" + onClickTopics="treeClicked"/> + + </div> + --> <p align="right">©2004-2009 CodeLutin</p> </body> Modified: trunk/src/main/webapp/Search.jsp =================================================================== --- trunk/src/main/webapp/Search.jsp 2011-07-04 14:56:03 UTC (rev 157) +++ trunk/src/main/webapp/Search.jsp 2011-07-05 14:26:01 UTC (rev 158) @@ -7,16 +7,19 @@ <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> + <%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %> + <sj:head debug="true" jquerytheme="default"/> <!--<s:if test="!files.empty">--> + <!-- <table> <s:iterator value="files"> <tr><td><a href="checkout.action?address=<s:property/>"><s:property/> <s:property value="level"/></a></td></tr> </s:iterator> - + <s:iterator value="directories" var="directory" > <tr><td> @@ -25,7 +28,7 @@ targets="htmlcontent%{key}" href="search.action?address=%{value}" > - ${directory.value} + <s:property value="key"/> </sj:a> @@ -36,7 +39,38 @@ </table> + --> + <!--</s:if>--> + + +<script> +$.subscribe('treeClicked', function(event, data) { + var item = event.originalEvent.data.rslt.obj; + document.location.href=("checkout.action?address="+item.attr("id")) +}); + +</script> + + <div id="searchTree"> + <s:set name="address"> + <s:property value="address"/> + </s:set> + + + <s:url id="searchTreeUrl" action="search?address=%{address}"/> + + + <sjt:tree id="svnTree" + + htmlTitles="true" + jstreetheme="classic" + href="%{searchTreeUrl}" + onClickTopics="treeClicked" + /> + + </div> + <s:label name="error"></s:label>
participants (1)
-
kcardineaud@users.nuiton.org