Author: mfortun Date: 2011-05-10 18:13:58 +0200 (Tue, 10 May 2011) New Revision: 883 Url: http://nuiton.org/repositories/revision/wikitty/883 Log: * need to strutify and correct edit page Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-10 16:13:58 UTC (rev 883) @@ -20,6 +20,10 @@ * overiding wikitty proxy method */ + /** + * + */ + private static final long serialVersionUID = -568462410130999972L; static protected WikittyService ws = null; protected WikittyPublicationProxy(ApplicationConfig config, Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-10 16:13:58 UTC (rev 883) @@ -1,8 +1,25 @@ package org.nuiton.wikitty.publication.action; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.nuiton.util.StringUtil; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.WikittyUtil; +import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.WikittyImpl; +import org.nuiton.wikitty.entities.FieldType.TYPE; +import org.nuiton.wikitty.publication.entities.WikittyPubData; +import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper; +import org.nuiton.wikitty.search.Criteria; + + import com.opensymphony.xwork2.ActionContext; public class PublicationActionEdit extends PublicationBaseAction{ @@ -12,8 +29,10 @@ */ private static final long serialVersionUID = -590087371230933701L; + protected String newExtension; protected Wikitty wikitty; + static public PublicationActionEdit getAction() { @@ -24,19 +43,171 @@ @Override public String execute() throws Exception { - String id = getArgument("id", ""); + doAction(); - if ("".equals(id)){ - wikitty = new WikittyImpl(); - }else{ - wikitty = getWikittyPublicationProxy().restore(id); - } - return SUCCESS; } + + + + + public void doAction(){ + + WikittyProxy proxy = getWikittyPublicationProxy(); + Object context; + + Map<String, Object> param = ActionContext.getContext().getParameters(); + + + if (param.containsKey("delete")) { + // on nous demande supprimer le wikitty, on l'efface et on + // affichera un wikitty vide + String id = getArgument("id", ""); + proxy.delete(id); + // apres un effacement on reprend l'edition d'un tout nouveau + // wikitty + wikitty = new WikittyImpl(); + } else { + List<String> argsString = new ArrayList<String>(); + String args = ActionContext.getContext().getParameters().get(ARGS_KEY) + .toString(); + String[] argsTab = StringUtil.split(args, SEPARATOR); + + for (String arg : argsTab) { + argsString.add(arg); + } + // recherche du Wikitty a editer ou creation d'un nouveau si + // necessaire + Criteria criteria = searchCriteria(argsString); + if (criteria == null) { + wikitty = new WikittyImpl(); + } else { + wikitty = proxy.findByCriteria(criteria); + } + + // si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree + // pour l'edition, on recree un wikitty avec ce meme identifiant + if (wikitty == null + && "0.0".equals( getArgument("version", ""))) { + // c'est un nouvel objet, il n'a pas encore ete sauve, mais on + // veut le faire + String id = getArgument("id", "");; + wikitty = new WikittyImpl(id); + } + + if (wikitty == null) { + // si le wikitty est null, et qu'on etait pas en edition + // cela signifie qu'on ne retrouve pas le wikitty a editer + // on creer un nouveau wikitty vide que l'on editera + wikitty = new WikittyImpl(); + } else { + // on met a jour le wikitty avec les infos trouvees dans les + // arguments + + // ajout des extensions deja existante si necessaire + String extensions = getArgument("extensions", null); + if (extensions != null) { + String[] exts = StringUtil.split(extensions + .replace("[", "").replace("]", ""), ","); + for (String extName : exts) { + WikittyExtension ext = proxy + .restoreExtensionLastVersion(extName); + if (ext != null) { + wikitty.addExtension(ext); + } + } + } + + // ajout de l'extension demande par l'utilisateur + String extName = getArgument("newExtension", null); + if (extName != null && !"".equals(extName)) { + WikittyExtension ext = proxy + .restoreExtensionLastVersion(extName); + if (ext != null) { + wikitty.addExtension(ext); + } + } + + Map<String, Object> args1 = new HashMap<String, Object>(); + // args1.putAll(getArguments()); + // args.putAll(context.getArgumentFiles()); + for (Map.Entry<String, Object> field : args1.entrySet()) { + String key = field.getKey(); + Object value = null; + if (key.contains(WikittyUtil.FQ_FIELD_NAME_SEPARATOR)) { + String ext = WikittyExtension.extractExtensionName(key); + String fieldName = WikittyExtension + .extractFieldName(key); + + if (wikitty.hasField(ext, fieldName)) { + if (!"true".equals(getArgument("isNull-" + + key, "false"))) { + + value = field.getValue(); + } + + FieldType extFieldType = wikitty.getExtension(ext) + .getFieldType(fieldName); + if (extFieldType.isCollection() + && extFieldType.getType() == TYPE.STRING + && value != null) { + + String valueString = value.toString(); + + valueString = new String(valueString.substring( + 1, valueString.length() - 1)); + + Collection<String> list = new ArrayList<String>(); + + String[] valuesString = StringUtil.split( + valueString, ","); + + for (String element : valuesString) { + list.add(element.trim()); + } + + wikitty.setField(ext, fieldName, list); + + } else { + wikitty.setField(ext, fieldName, value); + } + // si w est un WikittyPubData on essai de mettre a + // jour si besoin les champs mimetype et name + if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA) + && fieldName + .equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) { + if (null == WikittyPubDataHelper.getName(wikitty)) { + WikittyPubDataHelper.setName( + wikitty, + String.valueOf(args1.get(key + + "-filename"))); + } + if (null == WikittyPubDataHelper.getMimeType(wikitty)) { + WikittyPubDataHelper.setMimeType( + wikitty, + String.valueOf(args1.get(key + + "-contentType"))); + } + } + } + } + } + + if (param.containsKey("store")) { + // on nous demande la sauvegarde + proxy.store(wikitty); + } + } + } + } + + + + + public Wikitty getWikitty() { return wikitty; } @@ -46,6 +217,29 @@ } + public List<String> getWikittyExtentionAviable(){ + List<String> result = new ArrayList<String>(); + result.add("ponay"); + result.add("machin"); + + return result; + } + + public String getNewExtension() { + return newExtension; + } + + /* + * <s:combobox list="wikittyExtentionAviable" label="test" name="newExtension" /> + */ + public void setNewExtension(String newExtension) { + this.newExtension = newExtension; + } + + + } + + Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 16:13:58 UTC (rev 883) @@ -30,14 +30,13 @@ @Override public String execute() throws Exception { - System.out.println(search); + //search = this.getArgument("r", "*"); //first = this.getArgument("first", "0"); //end = this.getArgument("end", "100"); - String id = getArgument("id", ""); - System.out.println(id); + if (!"".equals(id)) { wikittyResult = getWikittyPublicationProxy().restore(id); } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-10 16:13:58 UTC (rev 883) @@ -182,4 +182,5 @@ return result; } + } Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp =================================================================== --- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-10 16:13:58 UTC (rev 883) @@ -54,14 +54,14 @@ String url = action.makeUrl(context, wikitty); */ -String url = "TODO"; + %> <h1>Edit <%=wikitty.getId()%></h1> <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre> -<form class="edit" action='<%=url%>' method="post" enctype="multipart/form-data"> +<form class="edit" action="edit.action" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="104857600" /> <!-- 100Mo --> <input type="hidden" name="id" value="<%=wikitty.getId()%>" /> <input type="hidden" name="version" value="<%=wikitty.getVersion()%>" /> Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp =================================================================== --- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 09:13:45 UTC (rev 882) +++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 16:13:58 UTC (rev 883) @@ -28,6 +28,7 @@ Author : poussin --%> +<%@page import="org.apache.commons.lang.StringEscapeUtils"%> <%@page import="org.nuiton.wikitty.publication.action.PublicationActionView"%> <%@page import="org.nuiton.util.StringUtil"%> @@ -51,8 +52,6 @@ PublicationActionView action = PublicationActionView .getAction(); - out.println(action.getPagedResult().size()); - /* WikittyPublicationContext context = (WikittyPublicationContext) request .getAttribute(ActionEval.CONTEXT_VAR); @@ -65,14 +64,10 @@ */ Wikitty wikit = action.getWikittyResult(); -%> -<% - if (wikit != null) { - out.print(wikit); - } -%> - + if (wikit!=null) {%> + <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikit))%></pre> + <%} %> <form action="view.action" method="post"> <div> <textarea title="Search" name="search"><%=action.getSearch()%></textarea> @@ -85,14 +80,23 @@ </pre> <table> + <tr> + <td></td> + <td>Wikitty Id</td> + <td>Version</td> + <td>Extensions</td> + </tr> + + <% for (Wikitty w : action.getPagedResult().getAll()) { %> <tr> <td><a href="<%=action.makeUrlEdit(w)%>">edit</a> </td> - <td><input type="submit" name="id" value="<%=w.getId()%>" /> - </td> + <td><input type="submit" name="id" value="<%=w.getId()%>"/></td> + + <td><%=w.getVersion()%></td> <td><%=w.getExtensionNames()%></td> </tr> <%