r167 - in trunk/chorem-webmotion/src/main: java/org/chorem/webmotion/actions java/org/wikitty/web/jsptag webapp/WEB-INF/jsp
Author: ymartel Date: 2012-06-01 16:37:19 +0200 (Fri, 01 Jun 2012) New Revision: 167 Url: http://chorem.org/repositories/revision/chorem/167 Log: Manage upload of file for wikitty binary field. TODO: manage the display of bite[] :) Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyInput.java trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/edit.jsp Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java 2012-05-31 16:55:38 UTC (rev 166) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java 2012-06-01 14:37:19 UTC (rev 167) @@ -7,6 +7,8 @@ import org.apache.commons.logging.LogFactory; import org.chorem.ChoremClient; import org.debux.webmotion.server.WebMotionController; +import org.debux.webmotion.server.call.Call; +import org.debux.webmotion.server.call.UploadFile; import org.debux.webmotion.server.render.Render; import org.nuiton.wikitty.entities.Element; import org.nuiton.wikitty.entities.Wikitty; @@ -388,7 +390,7 @@ return renderView("edit.jsp", "wikitty", w, "extensions", exts); } - public Render save(ChoremClient client, String id, String[] extension) { + public Render save(ChoremClient client, String id, String[] extension, Call call) { log.debug("save: " + id); Wikitty w = client.restore(id); if (w == null) { @@ -397,25 +399,30 @@ List<WikittyExtension> exts = client.restoreExtensionAndDependenciesLastVesion(Arrays.asList(extension)); w.addExtension(exts); - Map<String, String[]> params = getContext().getParameters(); + Map<String, Object> params = call.getExtractParameters(); String error = ""; for (String fqfield : params.keySet()) { if (w.hasField(fqfield)) { - String[] values = params.get(fqfield); Object v; - if (w.getFieldType(fqfield).isCollection()) { - if (values.length == 1 && w.getFieldType(fqfield).getType() == WikittyTypes.WIKITTY) { - // petit hack si l'editeur utilise n'est pas un select, - // mais un input (et donc des valeurs separees par des ',' - values = values[0].split(","); - System.out.println("YYYY " + Arrays.toString(values)); + if (w.getFieldType(fqfield).getType() == WikittyTypes.BINARY) { + //TODO : from file, get the binary, maybe configure mimeType field ? + UploadFile file = (UploadFile) params.get(fqfield); + v = file.getFile(); + } else { + String[] values = (String[]) params.get(fqfield); + if (w.getFieldType(fqfield).isCollection()) { + if (values.length == 1 && w.getFieldType(fqfield).getType() == WikittyTypes.WIKITTY) { + // petit hack si l'editeur utilise n'est pas un select, + // mais un input (et donc des valeurs separees par des ',' + values = values[0].split(","); + System.out.println("YYYY " + Arrays.toString(values)); + } + v = values; + } else { + v = values[0]; } - v = values; - } else { - v = values[0]; } try { - System.out.println("AAA try to put in field: " + fqfield + " values: " + Arrays.toString(values)); w.setFqField(fqfield, v); System.out.println("XXX after field: " + w.getFqField(fqfield)); } catch (Exception eee) { Modified: trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyInput.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyInput.java 2012-05-31 16:55:38 UTC (rev 166) +++ trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyInput.java 2012-06-01 14:37:19 UTC (rev 167) @@ -129,7 +129,7 @@ protected void inputBinary(JspWriter output, String contextPath, String name, Wikitty wikitty, FieldType field, String extName , String fieldName) throws JspException, IOException { - /*{<input type="file" name="<%=name%>" <%=getDynamicAttribute()%>/>"}*/ + /*{<input type="file" name="<%=name%>" <%=getDynamicAttribute()%>/>}*/ } protected void inputBoolean(JspWriter output, String contextPath, String name, Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/edit.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/edit.jsp 2012-05-31 16:55:38 UTC (rev 166) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/edit.jsp 2012-06-01 14:37:19 UTC (rev 167) @@ -3,7 +3,7 @@ <%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> <c:if test="${not empty wikitty}"> - <form class="form-inline" method="post" action="<c:url value="/wikitty/save"/>"> + <form class="form-inline" method="post" action="<c:url value="/wikitty/save"/>" enctype="multipart/form-data"> <input type="hidden" name="id" value="${wikitty.id}"/> <p> <button class="btn btn-success" type="submit"><i class="icon-ok icon-white"></i> Save</button>
participants (1)
-
ymartel@users.chorem.org