r598 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication resources webapp/WEB-INF/jsp
Author: bpoussin Date: 2010-12-10 23:26:28 +0100 (Fri, 10 Dec 2010) New Revision: 598 Url: http://nuiton.org/repositories/revision/wikitty/598 Log: On peut presque faire un site avec :) Added: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-codelutin.properties Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java 2010-12-10 22:23:35 UTC (rev 597) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java 2010-12-10 22:26:28 UTC (rev 598) @@ -1,20 +1,18 @@ package org.nuiton.wikitty.publication; import java.util.HashMap; -import java.util.List; import java.util.Map; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.WikittyImpl; +import org.nuiton.wikitty.publication.entities.WikittyPubData; +import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.operators.Element; @@ -83,64 +81,28 @@ // on met a jour le wikitty avec les infos trouvees dans les // arguments -// // ajout des extensions si necessaire -// String[] extNames = context.getRequest().getParameterValues("extensions"); -// if (extNames != null) { -// for (String extName : extNames) { -// WikittyExtension ext = proxy.restoreExtensionLastVersion(extName); -// if (ext != null) { -// w.addExtension(ext); -// } -// } -// } + // ajout des extensions deja existante si necessaire + String extensions = context.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) { + w.addExtension(ext); + } + } + } - // ajout des extensions si necessaire - String extName = context.getArgument("extensions", null); - if (extName != null) { + // ajout de l'extension demande par l'utilisateur + String extName = context.getArgument("newExtension", null); + if (extName != null && !"".equals(extName)) { WikittyExtension ext = proxy.restoreExtensionLastVersion(extName); if (ext != null) { w.addExtension(ext); } } -// boolean isMultipart = ServletFileUpload.isMultipartContent(context.getRequest()); -// if (isMultipart == true) { -// // Create a factory for disk-based file items -// DiskFileItemFactory factory = new DiskFileItemFactory(); -// // Create a new file upload handler -// ServletFileUpload upload = new ServletFileUpload(factory); -// // Process the uploaded items -// // Parse the request -// try { -// List<FileItem> items = upload.parseRequest(context.getRequest()); -// for (FileItem item : items) { -// String key = item.getFieldName(); -// if (key.contains(WikittyUtil.FQ_FIELD_NAME_SEPARATOR)) { -// String extName = WikittyExtension.extractExtensionName(key); -// String fieldName = WikittyExtension.extractFieldName(key); -// -// if (w.hasField(extName, fieldName)) { -// Object value = null; -// if (!"true".equals(context.getArgument("isNull-" + key, "false"))) { -// if (item.isFormField()) { -// value = item.getString(); -// } else { -// String filename = item.getName(); -// String mime = item.getContentType(); -// value = item.get(); -// log.info(String.format( -// "Set content with file '%s' of type '%s'", -// filename, mime)); -// } -// } -// w.setField(extName, fieldName, value); -// } -// } -// } -// } catch (FileUploadException eee) { -// log.error("Can't get uploaded file", eee); -// } -// } Map<String, Object> args = new HashMap<String, Object>(); @@ -158,6 +120,20 @@ value = field.getValue(); } w.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(w)) { + WikittyPubDataHelper.setName(w, + String.valueOf(args.get(key + "-filename"))); + } + if (null == WikittyPubDataHelper.getMimeType(w)) { + WikittyPubDataHelper.setMimeType(w, + String.valueOf(args.get(key + "-contentType"))); + } + } } } } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java 2010-12-10 22:23:35 UTC (rev 597) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java 2010-12-10 22:26:28 UTC (rev 598) @@ -2,6 +2,7 @@ import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ExceptionUtil; @@ -53,7 +54,7 @@ + "<br>getScheme: " + req.getScheme() + "<br>getServerName: " + req.getServerName() + "<br>" - + "<br>error:<pre>" + ExceptionUtil.stackTrace(error) + "</pre>" + + "<br>error:<pre>" + StringEscapeUtils.escapeHtml(ExceptionUtil.stackTrace(error)) + "</pre>" + "</body></html>"; return result; } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java 2010-12-10 22:23:35 UTC (rev 597) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java 2010-12-10 22:26:28 UTC (rev 598) @@ -25,7 +25,6 @@ import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; -import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.WikittyLabelAbstract; import org.nuiton.wikitty.entities.WikittyTreeNodeAbstract; @@ -34,7 +33,23 @@ import org.nuiton.wikitty.publication.entities.WikittyPubTextAbstract; /** + * Context de la requete en cours. * + * Les parametres de la requete sont parses et mis dans deux variables + * <li>arguments + * <li>argumentFiles + * + * un parametre simple sera dans arguments: + * <li> [filename]=[valeur du champs] + * + * un parametre de type upload aura des entrees dans les deux + * dans arguments: + * <li> [fieldname]-upload=true + * <li> [fieldname]-filename=[nom du fichier] + * <li> [fieldname]-contentType=[type mime du fichier] + * dans argumentFiles: + * <li> [fieldname]=[contenu binaire du fichier] + * * @author poussin * @version $Revision$ * @@ -150,6 +165,9 @@ "Argument file '%s' of type '%s'", filename, mime)); argumentFiles.put(name, value); + arguments.put(name+"-upload", "true"); + arguments.put(name+"-filename", filename); + arguments.put(name+"-contentType", mime); } } } catch (FileUploadException eee) { Added: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-codelutin.properties =================================================================== --- trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-codelutin.properties (rev 0) +++ trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-codelutin.properties 2010-12-10 22:26:28 UTC (rev 598) @@ -0,0 +1 @@ +wikitty.data.directory=/var/lib/wikitty-publication/codelutin Modified: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties =================================================================== --- trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties 2010-12-10 22:23:35 UTC (rev 597) +++ trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties 2010-12-10 22:26:28 UTC (rev 598) @@ -50,3 +50,5 @@ wikitty.addon.export.threadnumber=1 wikitty.addon.export.directory=${wikitty.data.directory}/export wikitty.addon.export.publicurl=file://${wikitty.data.directory}/export/ +wikitty.WikittyServiceAccessStat.components=\ +org.nuiton.wikitty.services.WikittyServiceAccessStat.AccessStatStorageWikitty Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp =================================================================== --- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2010-12-10 22:23:35 UTC (rev 597) +++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2010-12-10 22:26:28 UTC (rev 598) @@ -25,27 +25,31 @@ <h1>Edit <%=wikitty.getId()%></h1> -<pre><%=wikitty%></pre> +<pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre> <form class="edit" action='<%=url%>' 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()%>" /> + <input type="hidden" name="extensions" value="<%=wikitty.getExtensionNames()%>"/> <fieldset> <legend><span class="legend">Extensions</span></legend> + Current extension: <%=wikitty.getExtensionNames()%> <% WikittyProxy proxy = context.getWikittyProxy(); Collection<String> allExt = proxy.getAllExtensionIds(); if (allExt != null && allExt.size() > 0) { %> - <select name="extensions" size="10" multiple="multiple"> + <select name="newExtension" size="1"> + <option value="" selected="true"></option> <% for (String extId : allExt) { String extName = WikittyExtension.computeName(extId); - String selected = wikitty.hasExtension(extName)?"selected":""; + if (!wikitty.hasExtension(extName)) { %> - <option value="<%=extName%>" <%=selected%>><%=extName%></option> + <option value="<%=extName%>"><%=extName%></option> <% + } } %> </select>
participants (1)
-
bpoussin@users.nuiton.org